package com.cnap.utils;

import cn.hutool.jwt.JWT;

import static cn.hutool.jwt.RegisteredPayload.SUBJECT;

/**
 * token工具类
 *
 * @author xc
 **/
public final class TokenUtils {
    private static final ThreadLocal<String> TOKEN = new ThreadLocal<>();


    private TokenUtils() {
    }

    /**
     * 设置token
     *
     * @param token token
     */
    public static void setTOKEN(String token) {
        // 每次设置时
        // 清除上次设置的token
        TOKEN.remove();
        TOKEN.set(token);
    }

    /**
     * 获取token
     *
     * @return token
     */
    public static String getTOKEN() {
        return TOKEN.get();
    }

    /**
     * 获取用户名称
     *
     * @return 用户名称
     */
    public static String getUserName() {
        String token = TOKEN.get();
        // token使用jwt解析
        JWT jwt = JWT.of(token);
        return (String) jwt.getPayload(SUBJECT);
    }
}
